package com.wolfcode.contract.util;

import com.wolfcode.common.utils.file.FileUploadUtils;
import com.wolfcode.common.utils.uuid.UUID;

import org.springframework.util.Assert;
import org.springframework.web.multipart.MultipartFile;

import java.io.InputStream;


public class MinIoUtil {

    // 主机地址, 即我们要存放的服务器目标地址
    private final static String endpoint = "http://xue.cnkdl.cn:23900";
    // 账号
    private final static String accessKey = "developer";
    // 密码
    private final static String secretKey = "wolfcode.cn";
    // 存储空间, 即我们要存放的目录
    private final static String bucket = "car";

    public static String minIoUploadFile(MultipartFile file) throws Exception{
        Assert.notNull(file,"未上传文件");
        String extension = FileUploadUtils.getExtension(file); // 获取文件的后缀名
        Assert.state(extension.equals("md"),"合同格式不正确");
        String fileName = UUID.fastUUID() +"."+ extension; // 进行拼接生成唯一的文件名
        InputStream inputStream = file.getInputStream(); // 获取文件的输入流

        // 开始将合同文件上传到远程服务器中
//        MinioClient minioClient = MinioClient.builder().endpoint(endpoint) // 放入url
//                .credentials(accessKey, secretKey) // 放入账号和密码
//                .build();
//
//        //判断内存空间是否存在
//        boolean exists = minioClient.bucketExists(BucketExistsArgs.builder()
//                .bucket(bucket) // 放入文件存放位置
//                .build());
//        if (!exists) {
//            throw new RuntimeException("存储空间不存在");
//        }
//
//        PutObjectArgs putObjectArgs = PutObjectArgs.builder()
//                .bucket(bucket)
//                .object(fileName)
//                .stream(inputStream, inputStream.available(), -1)
//                .build();
        // 开始上传文件
//        minioClient.putObject(putObjectArgs);

        String url = endpoint + "/" + bucket + "/" + fileName;

        return url;
    }

}
